Uploading personal agents to personalize network services

ABSTRACT

A subscriber unit in a telephone network may receive personalized services from a network by providing personalized software to the network. The subscriber unit may prepare or have prepared particular personal agent software that implements certain enhanced functions designed by or for the subscriber. That software may then be uploaded to the network. Upon the occurrence of a certain event, the personal agent software is executed by the network to provide the personalized service desired by the subscriber. In some cases, the network may afford a variety of primitives which may implement basic functions that may be called by the personal agent software.

BACKGROUND

[0001] This invention relates generally to the provision by a network of telecommunication services.

[0002] Commonly a network service provider provides a variety of enhanced services to telephone service subscribers. For example, conventional telephone networks may provide a call forwarding function, enabling users to enable or disable the call forwarding function. In addition, network services currently include the ability to set a call forwarding number. Likewise, current network services allow the user to specify call forwarding triggers such as “no answer”, “busy”, or “always”. Similarly, network service providers may allow limited personalization of voice mail and other call services as well.

[0003] To receive enhanced network services, the subscriber must accept certain constraints associated with the provision of such services. While network service providers may allow limited personalization, they do not allow more general personalization by their subscribers.

[0004] In many cases, users of telephone systems can greatly personalize the way local systems operate. A range of services may be programmed into local PBX systems for example.

[0005] Thus, there is a need to enable network service providers to provide personalized services to their subscribers.

BRIEF DESCRIPTION OF THE DRAWINGS

[0006]FIG. 1 is a schematic depiction of a network in accordance with one embodiment of the present invention;

[0007]FIG. 2 is a flow chart for personal agent software in accordance with one embodiment of the present invention; and

[0008]FIG. 3 is a depiction of network download software in accordance with one embodiment of the present invention.

DETAILED DESCRIPTION

[0009] Referring to FIG. 1, a telecommunications network 10 may be wired or wireless. That is, the network 12 may communicate with subscriber units 14 over a wireless or land line based system 16. In the case of wireless communications 16, the subscriber unit 14 may be a wireless telephone and in the case of a land line system 16, the subscriber unit 14 may be a conventional land line telephone. The network 12 may provide telephone communication services as well as enhanced services for those subscribers who desire them. In one embodiment, the network 12 may include switching equipment and may be packet-based or circuit switched. In some embodiments, the network 12 is operated by processor-based systems that include a storage 20 that may store software 10 and 26. In addition, the network 12 may communicate with a database 25.

[0010] Referring to FIG. 2, the network 12 may receive a software upload from a subscriber unit 14 to enable personalization of network services. As an example, a subscriber unit 14 may upload personal agent software, in an appropriate format, to enable the network 12 to provide personalized call forwarding services. Unlike conventionally implemented network call forwarding services, the subscriber may, in fact, provide the software to implement relatively complex functions. The software is then actually executed by a processor-based system associated with the network 12.

[0011] Other call functions that may be implemented by personal agent software may include call recording, call screening, call logs, voice mail, call waiting or other incoming call handling functions, reporting call charges, directing incoming calls, selecting routes, personalizing ringers, caller identification, conference calling, and automatic dialing, to provide some additional examples.

[0012] Thus, personal agent software 10 provided by the subscriber units 14 may ultimately be stored on the storage 20. A check at diamond 11 determines whether a network event has occurred. A network event may be one of a plurality of events such as receipt of a telephone call, the lack of an answer of an incoming call, the passage of time, or any other network detectable event. When an event occurs, a check at diamond 12 determines whether personal agent software 14 for that event has been installed for the appropriate subscriber. If so, that subscriber's personal agent software is run on the network 12 as indicated in block 18. The personal agent software may call network 12 provided service primitives 20. The service primitives 20 may be software code for implementing common telecommunications functions. In the call forwarding example, the basic function of forwarding calls to another number may be executed by an appropriate primitive 20.

[0013] In the event no personal agent for the event has been installed for a particular subscriber, the conventional network event processing is utilized as indicated in block 14 relying on user supplied parameters 16. For example, in keeping with the call forwarding example described previously, the default network event processing may simply forward the call to a particular number specified by the user as a user parameter 16.

[0014] Turning next to FIG. 3, software 26 for enabling the network to upload the agent software from a subscriber unit 14 begins by downloading information about the available primitives as indicated in block 28 in accordance with one embodiment. This download may simply be a list of the primitives which a particular network service provider offers and which may be utilized by uploaded software. A check at diamond 30 determines whether subscriber unit 14 is ready to upload personal agent software. If so, the personal agent may be attached to the appropriate events and stored as indicated in block 32.

[0015] Thus, a subscriber unit 14 a or 14 b may supply personal agent software to the network 12 to implement personalized network originated services. In this way, the subscriber may provide the personalization as desired. The network 12 then merely detects the occurrence of events which trigger the provision of personalized services, runs the personal agent software and in some embodiments, provides primitives to implement desired services. However, how those primitives are called, the events that trigger the provision of the primitive services and the way those services are provided may be personalized by the subscriber.

[0016] In some cases, the subscriber may actually write the personal agent software. In other cases, the subscriber may purchase available software, using graphical user interfaces or other tools to appropriately personalize the software, and then upload the software to the network 12. The provision of the personal agent software may be over the appropriate network connections 16 or may be by way of an auxiliary connection. For example, in connection with a telephone network, the providing of the personal agent software may be done over a computer network such as a local area network, a metropolitan area network or the Internet. For example, in one embodiment, a subscriber may access the network provider's web site and may simply provide the agent software through that web site. Alternatively the software may be uploaded over the communication network 12 itself.

[0017] While the present invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of this present invention. 

What is claimed is:
 1. A method comprising: obtaining personal agent software; and uploading said personal agent software for execution by a telephone network.
 2. The method of claim 1 including creating the personal agent software on a subscriber unit which communicates with the telephone network.
 3. The method of claim 1 including creating personal agent software on a device other than a telephone coupled to said telephone network.
 4. The method of claim 1 including uploading personal agent software over said network.
 5. The method of claim 1 including uploading said personal agent software over a network other than said telephone network.
 6. The method of claim 1 wherein uploading said personal agent software includes providing said software to said telephone network over a wireless link.
 7. The method of claim 1 including creating the personal agent software on a device and uploading said software to the network.
 8. The method of claim 1 including transferring software over a computer network and uploading said software to said telephone network.
 9. An article comprising a medium storing instructions that enable a processor-based system to: store the personal agent software on a subscriber unit which communicates with the telephone network; and upload said software for execution by a telephone network.
 10. The article of claim 9 further storing instructions that enable a processor-based system to receive personal agent software from a device other than a telephone coupled to the telephone network.
 11. The article of claim 9 further storing instructions that enable the processor-based system to upload personal agent software over the network.
 12. The article of claim 9 further storing instructions that enable the processor-based system to upload said personal agent software over a network other than the telephone network.
 13. A system comprising: a processor; and a storage storing instructions that enable the processor to store personal agent software and upload the personal agent software for execution by a telephone network.
 14. The system of claim 13 wherein said system is a telephone.
 15. The system of claim 14 wherein said telephone is a wireless telephone.
 16. A method comprising: receiving personal agent software from a subscriber; and executing said software to provide services to said subscriber.
 17. The method of claim 16 including detecting the occurrence of a network event and upon detecting the occurrence of a network event, determining whether personal agent software for the event is available.
 18. The method of claim 17 wherein if personal agent software for the event is not available, processing the event using network event processing.
 19. The method of claim 16 including detecting the occurrence of an event, and upon the detection of the occurrence of an event, selecting an appropriate agent to run.
 20. The method of claim 19 including making available service primitives to implement network call functions to personal agent software that provides personalized services to subscribers to said telephone network.
 21. An article comprising a medium storing instructions that enable a processor-based system to: receive personal agent software from a subscriber; and execute said software to provide services to said subscriber.
 22. The article of claim 21 further storing instructions that enable the processor-based system to detect the occurrence of a network event and upon detection of the network event, determine whether personal agent software for the event is available.
 23. The article of claim 22 further storing instructions that enable the processor-based system to process the event using network event processing if personal agent software for the event is not available.
 24. The article of claim 21 further storing instructions that enable the processor-based system to detect the occurrence of an event, and upon the detection of the occurrence of the event, select an appropriate agent to run.
 25. The article of claim 24 further storing instructions that enable a processor-based system to make available service primitives to implement network call functions to personal agent software that provides personalized services to subscribers to said telephone network.
 26. A system comprising: a processor; and a storage storing instructions that enable the processor to receive personal agent software from a subscriber and execute said software to provide services to said subscriber for a telephone network.
 27. The system of claim 26 wherein said system is coupled to the telephone network to receive said personal agent software.
 28. The system of claim 26 wherein said system receives said personal agent software over the Internet.
 29. The system of claim 28 wherein said storage stores a plurality of primitives to implement standard call functions and said system makes those primitives available to the personal agent software. 